<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
  <meta name="generator" content=
  "HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org">

  <title>empty</title>
  <link href="../cppreference.css" rel="stylesheet" type="text/css">
</head>

<body>
<table>
  <tr>
  <td>
  <div class="body-content">

  <div class="header-box">
    <a href="../index.html">cppreference.com</a> &gt; <a href=
    "index.html">C++ Maps</a> &gt; <a href="empty.html">empty</a>
  </div>

  <div class="name-format">
    empty
  </div>

  <div class="syntax-name-format">
    Syntax:
  </div>
  <pre class="syntax-box">
  #include &lt;map&gt;
  bool empty() const;
</pre>

  <p>The empty() function returns true if the map has no elements,
  false otherwise.</p>

  <p>For example, the following code uses empty() as the stopping
  condition on a <a href= "../keywords/while.html">while</a> loop to
  clear a map and display its contents in order:</p>

  <pre class="example-code">
  struct strCmp {
    bool operator()( const char* s1, const char* s2 ) const {
      return strcmp( s1, s2 ) &lt; 0;
    }
  };

  ...

  map&lt;const char*, int, strCmp&gt; ages;
  ages["Homer"] = 38;
  ages["Marge"] = 37;
  ages["Lisa"] = 8;
  ages["Maggie"] = 1;
  ages["Bart"] = 11;

  while( !ages.empty() ) {
    cout &lt;&lt; "Erasing: " &lt;&lt; (*ages.begin()).first &lt;&lt; ", " &lt;&lt; (*ages.begin()).second &lt;&lt; endl;
    ages.erase( ages.begin() );
  }
</pre>

  <p>When run, the above code displays:</p>

  <pre class="example-code">
  Erasing: Bart, 11
  Erasing: Homer, 38
  Erasing: Lisa, 8
  Erasing: Maggie, 1
  Erasing: Marge, 37
</pre>


  <div class="related-name-format">
    Related topics:
  </div>

  <div class="related-content">
    <a href="begin.html">begin</a><br>
    <a href="erase.html">erase</a><br>
    <a href="size.html">size</a>
  </div>
  </div>
  </td>
  


  </tr>
  </table>
</body></html>
